<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: ORB_SLAM2 Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('namespace_o_r_b___s_l_a_m2.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">ORB_SLAM2 Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>This file is part of ORB-SLAM2.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_converter.html">Converter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convertidor entre <a class="el" href="namespaceg2o.html">g2o</a> y opencv.  <a href="class_o_r_b___s_l_a_m2_1_1_converter.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_extractor_node.html">ExtractorNode</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pendiente de documentación.  <a href="class_o_r_b___s_l_a_m2_1_1_extractor_node.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html">Frame</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a> representa un cuadro, una imagen, con los puntos singulares detectados.  <a href="class_o_r_b___s_l_a_m2_1_1_frame.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame_drawer.html">FrameDrawer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clase de instancia única que se ocupa de mostrar la imagen de la cámara, con marcas verdes sobre los puntos reconocidos.  <a href="class_o_r_b___s_l_a_m2_1_1_frame_drawer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_initializer.html">Initializer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inicializador de mapa en modo monocular.  <a href="class_o_r_b___s_l_a_m2_1_1_initializer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cuadro clave, keyframe.  <a href="class_o_r_b___s_l_a_m2_1_1_key_frame.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame_database.html">KeyFrameDatabase</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lista invertida de KeyFrames, accesible por BoW.  <a href="class_o_r_b___s_l_a_m2_1_1_key_frame_database.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html">LocalMapping</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html" title="LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. ">LocalMapping</a> tiene una única instancia ejecutando el método Run en su propio thread.  <a href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">LoopClosing</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cierre de bucles.  <a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mapa del mundo, de puntos y keyframes.  <a href="class_o_r_b___s_l_a_m2_1_1_map.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_drawer.html">MapDrawer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Esta clase contiene los métodos para dibujar en pangolin.  <a href="class_o_r_b___s_l_a_m2_1_1_map_drawer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_map_point.html">MapPoint</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cada instancia representa un mapa 3D en el sistema de referencia del mapa.  <a href="class_o_r_b___s_l_a_m2_1_1_map_point.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_optimizer.html">Optimizer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_optimizer.html" title="Optimizer concentra todas las operaciones con g2o. ">Optimizer</a> concentra todas las operaciones con <a class="el" href="namespaceg2o.html">g2o</a>.  <a href="class_o_r_b___s_l_a_m2_1_1_optimizer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_o_r_bextractor.html">ORBextractor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empaqueta todos los métodos de detección de puntos singulares y extracción de descriptores.  <a href="class_o_r_b___s_l_a_m2_1_1_o_r_bextractor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_o_r_bmatcher.html">ORBmatcher</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_o_r_bmatcher.html" title="ORBmatcher empaqueta todos los métodos de macheo de descriptores. ">ORBmatcher</a> empaqueta todos los métodos de macheo de descriptores.  <a href="class_o_r_b___s_l_a_m2_1_1_o_r_bmatcher.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html">PnPsolver</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solucionador Point n-Points EPnP.  <a href="class_o_r_b___s_l_a_m2_1_1_pn_psolver.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_serializer.html">Serializer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clase encargada de la serialización (guarda y carga) del mapa.  <a href="class_o_r_b___s_l_a_m2_1_1_serializer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_sim3_solver.html">Sim3Solver</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solucionador de transformación sim3 para cerrar bucles.  <a href="class_o_r_b___s_l_a_m2_1_1_sim3_solver.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_system.html">System</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_system.html" title="System se instancia una única vez en main, en la variable SLAM. ">System</a> se instancia una única vez en main, en la variable SLAM.  <a href="class_o_r_b___s_l_a_m2_1_1_system.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html">Tracking</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Objeto único que se ejecuta en su propio Trhead, y se inicia con Run().  <a href="class_o_r_b___s_l_a_m2_1_1_tracking.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_viewer.html">Viewer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_o_r_b___s_l_a_m2_1_1_viewer.html" title="Viewer representa la interfaz de usuario. ">Viewer</a> representa la interfaz de usuario.  <a href="class_o_r_b___s_l_a_m2_1_1_viewer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a2fafba714858cab1bb18d438e2e83c5d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="class_d_bo_w2_1_1_templated_vocabulary.html">DBoW2::TemplatedVocabulary</a>&lt; <a class="el" href="class_d_bo_w2_1_1_f_o_r_b.html#aef9b966d0293836fab9f55f1799ce0ed">DBoW2::FORB::TDescriptor</a>, <a class="el" href="class_d_bo_w2_1_1_f_o_r_b.html">DBoW2::FORB</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#a2fafba714858cab1bb18d438e2e83c5d">ORBVocabulary</a></td></tr>
<tr class="memdesc:a2fafba714858cab1bb18d438e2e83c5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vocabulario que mapea descriptores ORB con Bow.  <a href="#a2fafba714858cab1bb18d438e2e83c5d">More...</a><br /></td></tr>
<tr class="separator:a2fafba714858cab1bb18d438e2e83c5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ad90997cdb916a99c644c0959e08cf4df"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#ad90997cdb916a99c644c0959e08cf4df">computeDescriptors</a> (const Mat &amp;image, vector&lt; KeyPoint &gt; &amp;keypoints, Mat &amp;descriptors, const vector&lt; Point &gt; &amp;pattern)</td></tr>
<tr class="separator:ad90997cdb916a99c644c0959e08cf4df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a932693f631bfe871700d02c72e14c6cd"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#a932693f631bfe871700d02c72e14c6cd">computeOrbDescriptor</a> (const KeyPoint &amp;kpt, const Mat &amp;img, const Point *pattern, uchar *desc)</td></tr>
<tr class="memdesc:a932693f631bfe871700d02c72e14c6cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extrae el descriptor ORB del punto singular.  <a href="#a932693f631bfe871700d02c72e14c6cd">More...</a><br /></td></tr>
<tr class="separator:a932693f631bfe871700d02c72e14c6cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40adb6b621d7c2dd9d2961ba88e445c8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#a40adb6b621d7c2dd9d2961ba88e445c8">computeOrientation</a> (const Mat &amp;image, vector&lt; KeyPoint &gt; &amp;keypoints, const vector&lt; int &gt; &amp;umax)</td></tr>
<tr class="separator:a40adb6b621d7c2dd9d2961ba88e445c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac570dbdaae2d483745515b5022fd6820"><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#ac570dbdaae2d483745515b5022fd6820">IC_Angle</a> (const Mat &amp;image, Point2f pt, const vector&lt; int &gt; &amp;u_max)</td></tr>
<tr class="memdesc:ac570dbdaae2d483745515b5022fd6820"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calcula la orientación de un punto singular.  <a href="#ac570dbdaae2d483745515b5022fd6820">More...</a><br /></td></tr>
<tr class="separator:ac570dbdaae2d483745515b5022fd6820"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a8dd21ee063eca2b0bc3f5e76ceba0492"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#a8dd21ee063eca2b0bc3f5e76ceba0492">bit_pattern_31_</a> [256 *4]</td></tr>
<tr class="memdesc:a8dd21ee063eca2b0bc3f5e76ceba0492"><td class="mdescLeft">&#160;</td><td class="mdescRight">Coordenadas BRIEF.  <a href="#a8dd21ee063eca2b0bc3f5e76ceba0492">More...</a><br /></td></tr>
<tr class="separator:a8dd21ee063eca2b0bc3f5e76ceba0492"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec00f1ad4dea35755e3af4404282cd3b"><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#aec00f1ad4dea35755e3af4404282cd3b">EDGE_THRESHOLD</a> = 19</td></tr>
<tr class="memdesc:aec00f1ad4dea35755e3af4404282cd3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Umbral de los bordes, en píxeles.  <a href="#aec00f1ad4dea35755e3af4404282cd3b">More...</a><br /></td></tr>
<tr class="separator:aec00f1ad4dea35755e3af4404282cd3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8015b470ffeb885a0c90837a03b3210f"><td class="memItemLeft" align="right" valign="top">const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#a8015b470ffeb885a0c90837a03b3210f">factorPI</a> = (float)(CV_PI/180.f)</td></tr>
<tr class="memdesc:a8015b470ffeb885a0c90837a03b3210f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factor conversor de grados a radianes.  <a href="#a8015b470ffeb885a0c90837a03b3210f">More...</a><br /></td></tr>
<tr class="separator:a8015b470ffeb885a0c90837a03b3210f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa09849ae679bf2392b097abd710d8d7f"><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#aa09849ae679bf2392b097abd710d8d7f">HALF_PATCH_SIZE</a> = 15</td></tr>
<tr class="memdesc:aa09849ae679bf2392b097abd710d8d7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Medio parche en píxeles.  <a href="#aa09849ae679bf2392b097abd710d8d7f">More...</a><br /></td></tr>
<tr class="separator:aa09849ae679bf2392b097abd710d8d7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a557e5c298c5f7164667f083494c2197a"><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_o_r_b___s_l_a_m2.html#a557e5c298c5f7164667f083494c2197a">PATCH_SIZE</a> = 31</td></tr>
<tr class="memdesc:a557e5c298c5f7164667f083494c2197a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tamaño del lado del parche cuadrado, en píxeles.  <a href="#a557e5c298c5f7164667f083494c2197a">More...</a><br /></td></tr>
<tr class="separator:a557e5c298c5f7164667f083494c2197a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This file is part of ORB-SLAM2. </p>
<p>Copyright (C) 2014-2016 Raúl Mur-Artal &lt;raulmur at="" unizar="" dot="" es&gt;=""&gt; (University of Zaragoza) For more information see <a href="https://github.com/raulmur/ORB_SLAM2">https://github.com/raulmur/ORB_SLAM2</a></p>
<p>ORB-SLAM2 is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p>
<p>ORB-SLAM2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p>
<p>You should have received a copy of the GNU General Public License along with ORB-SLAM2. If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.</p>
<p>This file is a modified version of EPnP <a href="http://cvlab.epfl.ch/EPnP/index.php">http://cvlab.epfl.ch/EPnP/index.php</a>, see FreeBSD license below.</p>
<p>Copyright (C) 2014-2016 Raúl Mur-Artal &lt;raulmur at="" unizar="" dot="" es&gt;=""&gt; (University of Zaragoza) For more information see <a href="https://github.com/raulmur/ORB_SLAM2">https://github.com/raulmur/ORB_SLAM2</a></p>
<p>ORB-SLAM2 is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p>
<p>ORB-SLAM2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p>
<p>You should have received a copy of the GNU General Public License along with ORB-SLAM2. If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>. Copyright (c) 2009, V. Lepetit, EPFL All rights reserved.</p>
<p>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:</p>
<ol type="1">
<li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</li>
<li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</li>
</ol>
<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
<p>The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="a2fafba714858cab1bb18d438e2e83c5d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="class_d_bo_w2_1_1_templated_vocabulary.html">DBoW2::TemplatedVocabulary</a>&lt;<a class="el" href="class_d_bo_w2_1_1_f_o_r_b.html#aef9b966d0293836fab9f55f1799ce0ed">DBoW2::FORB::TDescriptor</a>, <a class="el" href="class_d_bo_w2_1_1_f_o_r_b.html">DBoW2::FORB</a>&gt; <a class="el" href="namespace_o_r_b___s_l_a_m2.html#a2fafba714858cab1bb18d438e2e83c5d">ORB_SLAM2::ORBVocabulary</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Vocabulario que mapea descriptores ORB con Bow. </p>
<p>OBRVocabulary es un tipo basado en plantilla que define un tipo de descriptores y una clase de funciones DBOW2 para manipularlos. OBRVocabulary usa Mat como descriptor (TDescriptor es Mat), y la clase FORB como implementación específicas para ORB de las funciones generales de manipulación de descriptores que requiere DBOW2.</p>
<p><a class="el" href="main_8cc.html">main.cc</a> crea la única instancia de este objeto, carga su vocabulario desde un archivo, y luego lo pasa como referencia a los constructores principales, iniciando la cascada. En lo sucesivo, cada objeto que necesita un vocabulario lo recibe por referencia al construirse.</p>
<p><a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a>, <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a>, <a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html" title="Cierre de bucles. ">LoopClosing</a> y <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> lo denominan mpORBvocabulary. <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame_database.html" title="Lista invertida de KeyFrames, accesible por BoW. ">KeyFrameDatabase</a> lo denomina mpVoc. <a class="el" href="class_o_r_b___s_l_a_m2_1_1_frame.html" title="Frame representa un cuadro, una imagen, con los puntos singulares detectados. ">Frame</a> y <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html" title="Cuadro clave, keyframe. ">KeyFrame</a> utilizan solamente su método transform, que obtiene los BoW correspondientes a un conjunto de descriptores. <a class="el" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html" title="Cierre de bucles. ">LoopClosing</a> utiliza solamente su método score, que compara dos BoW. <a class="el" href="class_o_r_b___s_l_a_m2_1_1_key_frame_database.html" title="Lista invertida de KeyFrames, accesible por BoW. ">KeyFrameDatabase</a> utiliza score y size, este último simplemente informa la cantidad de palabras en el vocabulario. <a class="el" href="class_o_r_b___s_l_a_m2_1_1_tracking.html" title="Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). ">Tracking</a> se limita a pasarlo a los objetos que construye. Actúa como pasamanos. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ad90997cdb916a99c644c0959e08cf4df"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void ORB_SLAM2::computeDescriptors </td>
          <td>(</td>
          <td class="paramtype">const Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vector&lt; KeyPoint &gt; &amp;&#160;</td>
          <td class="paramname"><em>keypoints</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Mat &amp;&#160;</td>
          <td class="paramname"><em>descriptors</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const vector&lt; Point &gt; &amp;&#160;</td>
          <td class="paramname"><em>pattern</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a932693f631bfe871700d02c72e14c6cd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void ORB_SLAM2::computeOrbDescriptor </td>
          <td>(</td>
          <td class="paramtype">const KeyPoint &amp;&#160;</td>
          <td class="paramname"><em>kpt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Mat &amp;&#160;</td>
          <td class="paramname"><em>img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Point *&#160;</td>
          <td class="paramname"><em>pattern</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar *&#160;</td>
          <td class="paramname"><em>desc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Extrae el descriptor ORB del punto singular. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">kpt</td><td>Punto singular. Su ángulo expresa la orientación. </td></tr>
    <tr><td class="paramname">img</td><td>Imagen sobre la que se extraerá el descriptor. </td></tr>
    <tr><td class="paramname">pattern</td><td>Siempre el mismo, patrón de coordenadas para la evaluación BRIEF. </td></tr>
    <tr><td class="paramname">desc</td><td>Descriptor resultado, de 256 bits (32 bytes, 4 int).</td></tr>
  </table>
  </dd>
</dl>
<p>Invocado sólo desde computeDescriptors. </p>

</div>
</div>
<a id="a40adb6b621d7c2dd9d2961ba88e445c8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void ORB_SLAM2::computeOrientation </td>
          <td>(</td>
          <td class="paramtype">const Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vector&lt; KeyPoint &gt; &amp;&#160;</td>
          <td class="paramname"><em>keypoints</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>umax</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ac570dbdaae2d483745515b5022fd6820"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static float ORB_SLAM2::IC_Angle </td>
          <td>(</td>
          <td class="paramtype">const Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Point2f&#160;</td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>u_max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calcula la orientación de un punto singular. </p>
<p>La orientación se expresa como ángulo que se usará para rotar convenientemente el patrón BRIEF en el momento de extraer el descriptor. </p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a8dd21ee063eca2b0bc3f5e76ceba0492"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ORB_SLAM2::bit_pattern_31_[256 *4]</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Coordenadas BRIEF. </p>
<p>Cada renglón contiene un par de coordenadas x,y cuyas intensidades se comparan para obtener un bit del descriptor binario. Hay 256 renglones para los 256 bits del BRIEF. Las coordenadas son relativas al punto singular a considerar, y a su orientación. Esto significa que estas coordenadas patrón se rototrasladan para obtener las coordenadas reales para extraer un descriptor.</p>
<p>Los valores son enteros y varían entre -13 y 13. Quizás estén todos en un círculo de diámetro 31 denominado parche. </p>

</div>
</div>
<a id="aec00f1ad4dea35755e3af4404282cd3b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int ORB_SLAM2::EDGE_THRESHOLD = 19</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Umbral de los bordes, en píxeles. </p>

</div>
</div>
<a id="a8015b470ffeb885a0c90837a03b3210f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const float ORB_SLAM2::factorPI = (float)(CV_PI/180.f)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Factor conversor de grados a radianes. </p>
<p>Al multiplicar un ángulo en grados, se obtiene el ángulo en radianes. </p>

</div>
</div>
<a id="aa09849ae679bf2392b097abd710d8d7f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int ORB_SLAM2::HALF_PATCH_SIZE = 15</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Medio parche en píxeles. </p>

</div>
</div>
<a id="a557e5c298c5f7164667f083494c2197a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int ORB_SLAM2::PATCH_SIZE = 31</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Tamaño del lado del parche cuadrado, en píxeles. </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_o_r_b___s_l_a_m2.html">ORB_SLAM2</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
